我已经测试了接口,并做了一些更改以与后端的sailsjs(版本11)一起使用。在这种情况下,我使用了帆服务,情况似乎很好,但我总是回到待处理状态。
```

    SinchService.js
var sinchAuth = require('sinch-auth');
var request = require('request');

var sinchMessaging = {};
var Promise = require('bluebird');
//sinchMessaging.sendMessage = function (phoneNumber, message) {
//exports.sendMessage = function (phoneNumber, message) {
module.exports = {
sendMessage: function (phoneNumber, message) {
var auth = sinchAuth();
if (!auth) {
    throw new Error("No Authorization was provided");
}
var options = {
    method: 'POST',
    url: "https://messagingApi.sinch.com/v1/sms/" + phoneNumber,
    headers: {
        "Content-Type": "application/json",
        "Authorization": auth
    },
    body: "{\"Message\":\"" + message + "\"}"
    //  body: {"Message" : message }
};

return new Promise(function (resolve, reject) {
    request(options, function (error, response, body) {

        sails.log("Finished with call");

        if (error) {
            sails.log(error);
            throw error;
        }
        else {
            sails.log("Finished with body ", body);//.MessageId

            return resolve(response.body);
        }

    });

})
},


getStatus: function (messageId) {
var auth = sinchAuth();
if (!auth) {
    throw new Error("No Authorization was provided");
}
var options = {
    method: 'GET',
    url: "https://messagingApi.sinch.com/v1/sms/" + messageId,
    headers: {
        "Content-Type": "application/json",
        "Authorization": auth
    }
};
return new Promise(function (resolve, reject) {
    request(options, function (error, response, body) {

        sails.log("Finished with call");

        if (error) {
            sails.log(error);
            throw error;
        }
        else {
            return resolve(response.body);
        }

    });

})

}
};


```

    agendaService.js
var jsonObjS;

SinchService.sendMessage(phoneNumber, message).then(function (results) {
var jsonObj = JSON.parse(results);
console.log('results sendMessage ', jsonObj.messageId);
if (jsonObj.messageId!==undefined){
SinchService.getStatus(jsonObj.messageId).then(function (results_s) {
    jsonObjS = JSON.parse(results_s);
    console.log('results getStatusS ', jsonObjS.status);

SinchService.getStatus(jsonObjS.messageId).then(function (results_s) {
var jsonObjS = JSON.parse(results_s);
console.log('results getStatusS ', jsonObjS.status);
});
});


```

最佳答案

待定将始终是第一个状态,一段时间后再次查询以查看消息的状态。

关于node.js - api调用以保证 promise ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35949289/

10-09 20:08