- From: Luis Montes <monteslu@gmail.com>
- Date: Thu, 24 Sep 2015 09:54:16 -0700
- To: Rob Moran <Rob.Moran@arm.com>
- Cc: Jeffrey Yasskin <jyasskin@google.com>, "public-web-bluetooth@w3.org" <public-web-bluetooth@w3.org>
- Message-ID: <CA+=VRdCfqbeW4rUwpm2Ta3BOdw6yLBUN_3zSdCRrxsyHm8iuOA@mail.gmail.com>
Noble is just callbacks and event emitters. A neat side effect is that my shim only gets called if you run your code through webpack or browserify and I don't actually need node's promise implementation. Anywhere that navigator.bluetooth exists it's pretty safe to assume a native Promise will be available :) On Thu, Sep 24, 2015 at 9:38 AM, Rob Moran <Rob.Moran@arm.com> wrote: > > Hey that's cool! > > The library I've been working on to abstract the different JS BLE > implementations is here: > > https://github.com/thegecko/bleat > <https://github.com/thegecko/bleat> > thegecko/bleat ยท GitHub > bleat - Abstraction library for hiding differences in JavaScript BLE APIs > Read more... <https://github.com/thegecko/bleat> > > > > I'm just starting to web-bluetooth-ify it [image: ๐] > > I wasn't aware of promises in node, that will make things much easier! > > Kind regards, > > Rob > > ------------------------------ > *From:* Jeffrey Yasskin <jyasskin@google.com> > *Sent:* 24 September 2015 16:30 > *To:* Rob Moran > *Cc:* public-web-bluetooth@w3.org; monteslu@gmail.com > *Subject:* Re: Hybrid promises > > Note that Luiz Montes is working on an implementation of the noble API in > terms of Web Bluetooth: > https://plus.google.com/+LuisMontes/posts/4BJ8zWdagTR. If node apps > prefer that API because it matches existing Node code better, I think it's > fine for them to use it. > > Node also has native Promises since the 4.0 merge. > > I don't mean to scare people off from API feedback in general. We'll > strongly consider any "this change would make this concrete use case work > better" feedback, especially if it comes with example code proving the > point. It's just that the Promise switch is bigger than this one API. > > Thanks, > Jeffrey > > On Thu, Sep 24, 2015 at 2:53 AM, Rob Moran <Rob.Moran@arm.com> wrote: > >> Thanks, Jeffrey >> >> Wrapping the interface to remove the promises as you suggest will work >> from a developer style perspective, but the underlying implementation would >> still need to return promises. >> A wrapper would also change the interface reducing the portability of >> code between implementations. >> >> For example, implementing a web-bluetooth API in node would require a >> dependency on a promise library (such as es6-promise) even if the api is >> later wrapped and the promises not used. >> >> I'll repost my question on the other list, but as the API is targeted for >> the web I can see how this is unlikely to change. >> >> Kind regards, >> >> Rob >> >> ________________________________________ >> From: Jeffrey Yasskin <jyasskin@google.com> >> Sent: 23 September 2015 18:28 >> To: Rob Moran >> Cc: public-web-bluetooth@w3.org >> Subject: Re: Hybrid promises >> >> This may be more of a question for public-script-coord@w3.org, who >> govern the style of new web APIs. My understanding is that every new >> API is using Promises, and folks who want to adapt them back to >> callbacks can wrap them, just like folks who want to use Promises with >> old callback-based APIs have to wrap them. >> >> https://github.com/hybridables/promise2thunk looks close to what you >> want, but it works on the output of the function instead of >> transforming the function itself. Would a similar wrapping library do >> what you want? >> >> We haven't explicitly considered defining a hybrid API that accepts a >> callback and returns a promise, but I expect most web API experts will >> oppose that direction, since the web platform will have to keep >> supporting it even after everyone's switched to promises. >> >> Jeffrey >> >> On Wed, Sep 23, 2015 at 10:04 AM, Rob Moran <Rob.Moran@arm.com> wrote: >> > Hi group, >> > >> > >> > we've been following the web-bluetooth specification closely with >> interest >> > and with a view to implementing it as an abstraction interface over >> other >> > popular JavaScript-BLE implementations on web, server and mobile. >> > >> > >> > We are aware this is a web-bluetooth specification rather than >> > JavaScript-bluetooth, however it does rely heavily on the use of ES6 >> > promises, a paradigm not commonly used on many platforms (yet!). >> > >> > >> > Promises are an elegant approach to asynchronous programming, but even >> in >> > web development the use of promises could perhaps be considered a >> choice of >> > the developer and not forced by the API. >> > >> > >> > We were wondering if a hybrid approach was considered when defining the >> > specification which allows the choice of using promises (if available) >> or a >> > callback with an error object. >> > >> > >> > Examples of this approach can be seen in these npm modules: >> > >> > >> > https://www.npmjs.com/package/hybridify >> > >> > https://www.npmjs.com/package/handle-callback >> > >> > >> > Forgive my ignorance if discussions around this are already public. >> > >> > >> > >> > Kind regards, >> > >> > >> > Rob >> > >> > >> > >> > ________________________________ >> > >> > -- IMPORTANT NOTICE: The contents of this email and any attachments are >> > confidential and may also be privileged. If you are not the intended >> > recipient, please notify the sender immediately and do not disclose the >> > contents to any other person, use it for any purpose, or store or copy >> the >> > information in any medium. Thank you. >> >> >> ________________________________ >> >> -- IMPORTANT NOTICE: The contents of this email and any attachments are >> confidential and may also be privileged. If you are not the intended >> recipient, please notify the sender immediately and do not disclose the >> contents to any other person, use it for any purpose, or store or copy the >> information in any medium. Thank you. >> >> > > ------------------------------ > > -- IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy the > information in any medium. Thank you. >
Attachments
- image/png attachment: OutlookEmoji-____.png
Received on Thursday, 24 September 2015 18:10:02 UTC