我试图在这里重用从 promise 返回的数据。但是,问题是,在第一次调用checkPromisefunction 之后,它立即调用第二个函数,并且第一个函数的 promise 没有实现,因此它永远不会返回任何数据,因此它永远不会进入 if 子句。我如何重用承诺?
var Promise = require('bluebird');
var request = Promise.promisify(require("request"));
var url = 'http://www.google.com';
var obj = new Object;
function apiCall(url) {
return new Promise(function (resolve, reject) {
request(url).spread(function(response, body) {
return resolve(body);
}).catch(function(err) {
console.error(err);
return reject(err);
});
});
}
function checkPromise(url) {
if(obj.hasOwnProperty(url)) {
var rp = obj[url];
//do something
}
else {
apiCall(url).then(function(result) {
obj[url] = result;
//do something
});
}
}
checkPromise(url);
checkPromise(url);
Run Code Online (Sandbox Code Playgroud) 我已经在环回中继承了这样的模型-
{
"name": "MyModel",
"base": "AnotherModel",
"idInjection": false,
"properties": {
"value": {
"type": "String"
},
"display": {
"type": "String"
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": []
}
Run Code Online (Sandbox Code Playgroud)
虽然我可以AnotherModel从MyModel.js文件中调用所有的远程方法。但是,AnotherModel我的浏览器中没有显示的远程方法。如何使继承的模型的所有远程方法显示在资源管理器中?