私はPOSTリクエストを作成しています。要求が成功した場合、私はCisco Sparkチャットルームを作成しています(スラックに似ています)。 POST要求の中で、私はPOST要求成功の中の変数(配列)の一部と、Cisco Sparkチャットルームの作成成功の中の変数の他の部分を更新しています。request.postでネストされた約束
ここでは、必要なときに変数全体を使用できるように、ここではネストされた約束が必要だと思います。しかし、私はこれを行う方法がわかりません。
元のコードは以下のようになります。
var request = require('request');
var array = [];
myObj = new Object()
request.post({
url: urlServiceNow,
headers: headers,
rejectUnauthorized: false,
requestCert: false,
agent: false,
},function (response, err, body){
var createJSON = JSON.parse(body);
array.push(createJSON.result.sys_id);
}.bind(this));
ciscospark.rooms.create({title: `AppDNotification`})
.then((room) => {
array.push(room.id)
myObj[valEventTime] = array;
imdb.push(myObj)
return Promise.all([
//more code
]).catch((error) => {
console.log(`Error: \n${error}`);
})
.then(() => ciscospark.messages.create({
markdown: messageToSend,
roomId: room.id
}))
.catch((error) => {
console.log(`Error: \n${error}`);
});
});
私は
request.post({
url: urlServiceNow,
headers: headers,
rejectUnauthorized: false,
requestCert: false,
agent: false,
},function (response, err, body){
var createJSON = JSON.parse(body);
array.push(createJSON.result.sys_id);
}.bind(this))
.then(() => ciscospark.rooms.create({title: `AppDNotification`}))
.then((room) => {
//rest of the code
})
以下のように.bind後.thenでコードを更新しました。しかし、私はエラー
TypeError: request.post(...).then is not a function
を取得しています
お勧めします。要求のドキュメントを見てみると
どのようなリクエストライブラリを使用していますか? '要求 'が何であるかは明確ではない。それはネイティブなnode.jsオブジェクトですか、[request](https://github.com/request/request)を使用していますか? – zero298
は投稿を編集しました。私はvar request = require( 'request')を使用しています。 – nad
そのライブラリのドキュメントを見てください。このライブラリを使用した約束は、[Promises&Async/Await](https://github.com/request/request#promises--asyncawait)ではサポートされていません。 [request-promise](https://github.com/request/request-promise)などのラッピングライブラリの使用を検討する必要があります。 – zero298