小编Pra*_*aid的帖子

如何重用承诺?

我试图在这里重用从 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)

javascript node.js promise bluebird

5
推荐指数
1
解决办法
6885
查看次数

继承模型的远程方法未在回送资源管理器中显示

我已经在环回中继承了这样的模型-

{
    "name": "MyModel",
    "base": "AnotherModel",
    "idInjection": false,
    "properties": {
      "value": {
        "type": "String"
      },
      "display": {
        "type": "String"
      }
    },
    "validations": [],
    "relations": {},
    "acls": [],
    "methods": []
}
Run Code Online (Sandbox Code Playgroud)

虽然我可以AnotherModelMyModel.js文件中调用所有的远程方法。但是,AnotherModel我的浏览器中没有显示的远程方法。如何使继承的模型的所有远程方法显示在资源管理器中?

strongloop loopbackjs

4
推荐指数
1
解决办法
1414
查看次数

标签 统计

bluebird ×1

javascript ×1

loopbackjs ×1

node.js ×1

promise ×1

strongloop ×1