2016-04-07 8 views
4

を言う機能で要求の約束を使用して値を返す私は私はここで、要求の約束のドキュメントを見てから、だから、それは未定義

function get_data_id(searchValue) { 
    rp('http://example.com?data=searchValue') 
    .then(function(response) { 
     return JSON.parse(response).id; 
    }); 
} 

を持っている。そして、私は別の場所で、私の中にこのコードを使用しているものですそれはundefinedを返ししかしスクリプト

console.log(get_data_id(searchValue));

私は、次の

undefined 
valueofID 

を得るconsole.log(JSON.parse(response).id)return JSON.parse(response).idを変更した場合ので、私は返すようにしようとしている価値は間違いなく正しい/有効ですが、私は値としてそれを返す方法を見つけ出すことはできません。

答えて

2

リクエストの約束が約束を返すためだと思います。

したがって、プロンプトがまだ解決されていないため、戻り値を直接console.logに設定すると、未定義になります。

3

あなたが呼び出し側に約束を返却する必要があります。

get_data_id('hello').then(function (id) { 
    console.log('Got the following id:', id) 
}) 

function get_data_id(searchValue) { 
    return rp('http://example.com?data=searchValue') 
    .then(function(response) { 
     return JSON.parse(response).id; 
    }); 
} 

次に、このようなあなたの関数を使用します

関連する問題