Observable.bindCallback()
を2 args、callback(results, status)
を返すコールバックでどのように使用しますか?以下の例ではgoogle.maps.places
APIである:どのようにObservable.bindCallback()を使用しますか
const service = new google.maps.places.PlacesService(map);
// service.nearbySearch(request, callback);
function callback(results, status) {
if (status === google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
createMarker(results[i]);
}
}
}
私はこのような何かやりたい:
const handleError = err=>console.error(error);
const nearbyAsObservable = Observable.bindCallback(service.nearbySearch)
nearbyAsObservable(request)
.subscribe(
(results,status)=>{
if (status!="OK") handleError(results);
callback
}
, handleError
)
を、私は次のように不安午前:
1)」へのベストプラクティスでありますnext
ハンドラからエラーをスローし、error
ハンドラでキャッチするか、handleError()
というメソッドを呼び出しますか?
2)私はCannot read property 'nearbySearch' of undefined(…)
エラーが発生しています。しかし、私は、私はTSのエラーを取得するconst nearbyAsObservable = Observable.bindCallback(service.nearbySearch.bind(service))
を呼び出すとき:アップデート
// const nearbyAsObservable = Observable.bindCallback(service.nearbySearch.bind(service))
// nearbyAsObservable(request)
[ts] Supplied parameters do not match any signature of call target.
const nearbyAsObservable:() => Observable<{}>
このハックは、TSエラーに
const nearbyAsObservable : any = Observable.bindCallback(service.nearbySearch.bind(service))
nearbyAsObservable(request)
.subscribe(
(results,status)=>{
if (status!="OK") handleError(results);
callback
}
, handleError
)
を修正するように見えますが、私はそれを(result, status)=>void
next
ハンドラは文句を言い 3)ObservableリターンをObservable<[result, status]>
からObservable<PlaceResult[]>
に変換するにはどうすればよいですか?
てみ 'Observable.bindCallback(service.nearbySearch.bind(サービス))' – cartant
はどのように知っていますか、あなたは正しくエラーを処理していませんか? – martin
あなたが使用しているのと同じAPIで 'bindCallback'を使って別の質問に答えましたが、もう見つけられません。私はユーザーのアカウントが削除されたと仮定することしかできません。詳細を覚えておいてください。 – cartant