当承诺不能传递给第三方图书馆时该怎么办?
我正在使用node.js库nomnom进行命令行parsing和bluebird的promise。
Nomnom提供通过callback来执行命令 。 不幸的是,callback不支持返回的承诺。
我想知道,处理这个接口不匹配的最好方法是什么? 我正在考虑添加一个忙碌循环,直到承诺解决/拒绝(使用isPending)在这种情况下。 有没有更好的办法 ?
var parser = require("nomnom"); parser.command('somecommand').callback(function(opts) { var p = thisFuncReturnsAPromise(); //have to block here since //nomnom expects at the end of the callback that processing of the command is done. })
var promise = new Bluebird(function(resolve, reject) { //Create a promise myLib.doStuff(function() { resolve(); //In a callback you resolve the promise }); }); promise.then(function() { //Use the promise console.log('Stuff done'); });