我有一些使用node-bing-api的代码.它是错误的,并且运行完美,但我想将其转换为使用Promises(和await).
我正在使用节点8,和util.promisify.在下面的代码中,Bing.web是常规的err-first代码,并且searchBing是promisified版本.
var findParentDir = require('find-parent-dir'),
configDir = findParentDir.sync(__dirname, 'config.js'),
config = require(configDir+'config.js'),
util = require('util'),
log = console.log.bind(console),
Bing = require('node-bing-api')({ accKey: config.cognitiveServices.bingSearch }),
searchBing = util.promisify(Bing.web);
var start = async function(){
// This fails
// var searchResultsRaw = await searchBing('windows', {top: 5})
// log(searchResultsRaw)
// This works
Bing.web('windows', {top: 5}, function(err, searchResultsRaw){
log(searchResultsRaw)
})
};
start();
Run Code Online (Sandbox Code Playgroud)
promisified版本失败了:
(node:1752) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): TypeError: …Run Code Online (Sandbox Code Playgroud)