Promise.promisify 不是函数
Promise.promisify is not a function
我是这样写的JavaScript:
var keys=null;
var promise=Promise.promisify(alchemyapi.keywords("url",myUrl,{},function(response) {
var keywords = { url:myUrl, response:JSON.stringify(response,null,4), results:response['keywords'] };
return keywords;
}));
promise.then(
(result)=>{
var keys=result;
console.log(keys);
},
(error)=>console.log(error)
);
我正在使用 AlchemyAPI 并尝试存储我进入数据库的数据
我该怎么办?
您应该能够通过删除 .promisify
来使用 Promise
到 return 预期结果,这不是内置的 Promise
方法;在 Promise
构造函数中替换 keywords
到 resolve
return
var keys = null
, promise = new Promise(function(resolve) {
alchemyapi.keywords("url", myUrl, {}, function(response) {
var keywords = {url: myUrl
, response: JSON.stringify(response,null,4)
, results:response['keywords']
};
resolve(keywords);
// error handling ?
})
}).then(function(result) {
keys = result;
console.log(keys)
}, function(err) {
console.log(err)
})
对于没有 Bluebird 的更通用的 Promise.promisify
函数,我最后写了这个:
function promisify(func) {
return function promiseFunc(options) {
return new Promise(function executor(resolve, reject) {
func(options, function cb(err, val) {
if (err) {
return reject(err);
} else {
return resolve(val);
}
});
});
}
}
希望其他人觉得这有帮助,但在大多数情况下,可能值得导入 Bluebird。
我是这样写的JavaScript:
var keys=null;
var promise=Promise.promisify(alchemyapi.keywords("url",myUrl,{},function(response) {
var keywords = { url:myUrl, response:JSON.stringify(response,null,4), results:response['keywords'] };
return keywords;
}));
promise.then(
(result)=>{
var keys=result;
console.log(keys);
},
(error)=>console.log(error)
);
我正在使用 AlchemyAPI 并尝试存储我进入数据库的数据 我该怎么办?
您应该能够通过删除 .promisify
来使用 Promise
到 return 预期结果,这不是内置的 Promise
方法;在 Promise
构造函数中替换 keywords
到 resolve
return
var keys = null
, promise = new Promise(function(resolve) {
alchemyapi.keywords("url", myUrl, {}, function(response) {
var keywords = {url: myUrl
, response: JSON.stringify(response,null,4)
, results:response['keywords']
};
resolve(keywords);
// error handling ?
})
}).then(function(result) {
keys = result;
console.log(keys)
}, function(err) {
console.log(err)
})
对于没有 Bluebird 的更通用的 Promise.promisify
函数,我最后写了这个:
function promisify(func) {
return function promiseFunc(options) {
return new Promise(function executor(resolve, reject) {
func(options, function cb(err, val) {
if (err) {
return reject(err);
} else {
return resolve(val);
}
});
});
}
}
希望其他人觉得这有帮助,但在大多数情况下,可能值得导入 Bluebird。