我有一个功能,我想使用它并理解
对我来说困难的部分是token.promise和取消功能。有人可以描述下面的功能是如何工作的吗?
package com.myapp.siva.bus;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
import com.edwardvanraak.materialbarcodescanner.MaterialBarcodeScanner;
import com.edwardvanraak.materialbarcodescanner.MaterialBarcodeScannerBuilder;
import com.google.android.gms.vision.barcode.Barcode;
import com.myapp.siva.R;
public class QrCodeScanningActivity extends AppCompatActivity {
Barcode barcodeResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qr_code_scanning);
startScan();
}
private void startScan() {
/**
* Build a new MaterialBarcodeScanner
*/
final MaterialBarcodeScanner materialBarcodeScanner = new MaterialBarcodeScannerBuilder()
.withActivity(this)
.withEnableAutoFocus(true)
.withBleepEnabled(false)
.withBackfacingCamera()
.withCenterTracker()
.withText("Scanning...")
.withResultListener(new MaterialBarcodeScanner.OnResultListener() {
@Override
public void onResult(Barcode barcode) {
barcodeResult = barcode;
String result = barcodeResult.displayValue;
Toast.makeText(QrCodeScanningActivity.this, ""+result, Toast.LENGTH_SHORT).show();
// result.setText(barcode.rawValue);
}
})
.build();
materialBarcodeScanner.startScan();
}
答案 0 :(得分:0)
令牌是一个具有token.promise
的对象,并且可能在将来的某个时间点token.reason
上。{/ p>
token.promise
是一个实际的承诺,方法.then
和.catch
。显然.then
将在取消承诺后调用,reason
为唯一参数。
因此,您调用函数let arr = createCancelToken()
并获取令牌并从中取消对象let token = arr[0]; let cancel = arr[1]
。稍后您可以致电cancel('no reason');
token.promise.then(reason => {})
,reason
为“无理由”