标签: callback

61
推荐指数
7
解决办法
3万
查看次数

是否有可能捕获JavaScript异步回调中抛出的异常?

有没有办法捕获JavaScript回调中的异常?它甚至可能吗?

Uncaught Error: Invalid value for property <address>
Run Code Online (Sandbox Code Playgroud)

这是jsfiddle:http://jsfiddle.net/kjy112/yQhhy/

try {
    // this will cause an exception in google.maps.Geocoder().geocode() 
    // since it expects a string.
    var zipcode = 30045; 
    var map = new google.maps.Map(document.getElementById('map_canvas'), {
        zoom: 5,
        center: new google.maps.LatLng(35.137879, -82.836914),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });
    // exception in callback:
    var geo = new google.maps.Geocoder().geocode({ 'address': zipcode }, 
       function(geoResult, geoStatus) {
          if (geoStatus != google.maps.GeocoderStatus.OK) console.log(geoStatus);
       }
    );
} catch (e) {
    if(e instanceof TypeError)
       alert('TypeError');
    else
       alert(e);
}?
Run Code Online (Sandbox Code Playgroud)

javascript google-maps exception callback

60
推荐指数
3
解决办法
3万
查看次数

带有回调的Python中的any()函数

Python标准库定义了一个any()函数

如果iterable的任何元素为true,则返回True.如果iterable为空,则返回False.

它仅检查元素是否评估为True.我希望它能够如此指定一个回调来判断一个元素是否符合以下条件:

any([1, 2, 'joe'], lambda e: isinstance(e, int) and e > 0)
Run Code Online (Sandbox Code Playgroud)

python functional-programming callback any

59
推荐指数
6
解决办法
7万
查看次数

在Android中使用ResultReceiver

从根本上说,我想从IntentService建立一个Activity的回调.我的问题与这里回答的问题非常相似:

宁静的API服务

但是,在答案代码中,活动代码被视为实现ResultReceiver.除非我遗漏了什么,否则ResultReceiver实际上是一个类,所以它无法执行此实现.

基本上,我问的是将ResultReceiver连接到该服务的正确方法是什么.我对Handler和ResultReceiver概念感到困惑.任何工作示例代码将不胜感激.

service android callback android-activity

59
推荐指数
3
解决办法
5万
查看次数

在release()之后调用异常无法用android摄像头恢复的方法

在开发相机应用程序时,我遇到了一个异常,只有当我切换到其他应用程序(onPause()对于我的应用程序)时才会发生.

01-15 17:22:15.017: E/AndroidRuntime(14336): FATAL EXCEPTION: main
01-15 17:22:15.017: E/AndroidRuntime(14336): java.lang.RuntimeException: Method called after release()
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.hardware.Camera.setPreviewDisplay(Native Method)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.hardware.Camera.setPreviewDisplay(Camera.java:357)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at com.sora.cbir.yuki.image.leaf.CameraPreview.surfaceCreated(CameraPreview.java:32)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.SurfaceView.updateWindow(SurfaceView.java:551)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:213)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.View.dispatchWindowVisibilityChanged(View.java:4075)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:742)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:742)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:742)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:742)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.ViewRoot.performTraversals(ViewRoot.java:858)
01-15 17:22:15.017: E/AndroidRuntime(14336):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1995)
01-15 17:22:15.017: …
Run Code Online (Sandbox Code Playgroud)

java camera android exception callback

59
推荐指数
4
解决办法
5万
查看次数

在Fragment中的onCreateView之前调用setUserVisibleHint

我在那里工作ViewPager和使用Fragment我找到了

在Fragment中的onCreateView()之前调用setUserVisibleHint()

我在Fragment支持库中使用android.support.v4.app.Fragment

这是图书馆的问题吗?

我怎么能摆脱它?

编辑

我重写setUserVisibleHint()而不是调用super来摆脱它.

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    //FIXED: setUserVisibleHint() called before onCreateView() in Fragment causes NullPointerException
    //super.setUserVisibleHint(isVisibleToUser);
}
Run Code Online (Sandbox Code Playgroud)

android callback android-fragments

59
推荐指数
4
解决办法
5万
查看次数

JavaScript回调范围

我在回调函数中引用我的对象时遇到了一些普通的旧JavaScript(没有框架)的问题.

function foo(id) {
    this.dom = document.getElementById(id);
    this.bar = 5;
    var self = this;
    this.dom.addEventListener("click", self.onclick, false);
}

foo.prototype = {
    onclick : function() {
        this.bar = 7;
    }
};
Run Code Online (Sandbox Code Playgroud)

现在当我创建一个新对象时(在DOM加载后,使用span #test)

var x = new foo('test');
Run Code Online (Sandbox Code Playgroud)

onclick函数中的'this'指向span#test而不是foo对象.

如何在onclick函数中获取对foo对象的引用?

javascript events binding scope callback

58
推荐指数
3
解决办法
5万
查看次数

C#将额外的参数传递给事件处理程序?

比方说,我想在分配事件处理程序时传递一些额外的数据.请考虑以下代码:

private void setup(string someData)
{
     Object.assignHandler(evHandler);
}

public void evHandler(Object sender)
{
    // need someData here!!!
}
Run Code Online (Sandbox Code Playgroud)

我如何将someData放入我的evHandler方法?

c# events callback

57
推荐指数
3
解决办法
8万
查看次数

node.js async libs

有大量的库可以帮助修复回调综合症的层次.

事实上,有太多,我使用哪一个?

asynchronous callback node.js

56
推荐指数
3
解决办法
2万
查看次数

在继续之前等待多个异步调用完成

所以,我有一个加载的页面,并通过jquery.get发出几个请求,用它们的值填充下拉列表.

$(function() {
    LoadCategories($('#Category'));
    LoadPositions($('#Position'));
    LoadDepartments($('#Department'));

    LoadContact();
};
Run Code Online (Sandbox Code Playgroud)

然后调用LoadContact(); 这是另一个调用,当它返回时,它会填充表单上的所有字段.问题是通常,下拉列表并非全部填充,因此,它无法将它们设置为正确的值.

我需要做的是,只要其他方法完成并且回调完成执行,LoadContact就会以某种方式执行.

但是,我不想在下拉填充回调的末尾放置一堆标志,然后检查,并且在调用LoadContact()之前必须进行递归的setTimeout调用检查;

jQuery中有什么东西可以让我说,"当所有这些都完成时执行它."?

更多信息 我正在考虑这些问题

$().executeAfter(
    function () {   // When these are done
        LoadCategories($('#Category'));
        LoadPositions($('#Position'));
        LoadDepartments($('#Department'));
    },
    LoadContact // Do this
);
Run Code Online (Sandbox Code Playgroud)

...它需要跟踪在执行方法期间发生的ajax调用,并且当它们全部完成时,调用LoadContact;

如果我知道如何拦截在该函数中创建的ajax,我可能会编写一个jQuery扩展来执行此操作.

我的解决方案

;(function($) {
    $.fn.executeAfter = function(methods, callback) {

        var stack = [];

        var trackAjaxSend = function(event, XMLHttpRequest, ajaxOptions) {
            var url = ajaxOptions.url;

            stack.push(url);
        }

        var trackAjaxComplete = function(event, XMLHttpRequest, ajaxOptions) {
            var url = ajaxOptions.url;

            var index = jQuery.inArray(url, stack);

            if (index >= 0) …
Run Code Online (Sandbox Code Playgroud)

javascript jquery asynchronous callback

55
推荐指数
3
解决办法
4万
查看次数